#ifndef PWAVE_PROBLEMCART2DBLK_H
#define PWAVE_PROBLEMCART2DBLK_H

#include "Problem.h"


class ProblemCart2DBlk : public Problem {
public:
    int NUM_BLK_Y, NUM_BLK_Z;

    virtual void init(const CmdLineArgs* cmd) = 0;
    virtual void partition(Data3D* data3D) = 0;
    virtual void create_MPI_topo(MPI_Topo* topo) = 0;
    virtual void init_model(Data3D* data3D, const MPI_Topo* topo) = 0;
    virtual double* solve(Data3D* data3D, const MPI_Topo* topo) = 0;
    virtual void free() = 0;
};

#endif //PWAVE_PROBLEMCART2DBLK_H
